O que duas exclamações fazem no JS?

duas exclamações javascript

O uso da exclamação no javascript faz uma negação e inverte o valor booleano, quando usado duas vezes inverte novamente esse valor.

Em javascript toda variável tem um valor booleano (verdadeiro ou falso), atribuído a ela. Por exemplo: um valor null tem o false vinculado, já uma string ou number é true.

O simbolo de exclamação "!" representa uma negação, ou seja é o operador lógico de não. Quando inserido antes de uma variável ele inverte o valor booleano retornando o oposto, quando é verdadeiro, retorna falso e quando é falso fica verdadeiro.

Então a exclamação determina qual o valor booleano da variável e retorna o inverso dela.
A exclamação dupla inverte o valor novamente retornando a informação inicial da variável.

Observação
A exclamação dupla "!!" não é um operador lógico diferente, apenas a "!" usada duas vezes.

Onde isso será usado?
Para saber qual o valor booleano associado a qualquer valor fornecido.

Outra forma de fazer seria usando a função construtora boolean(variável) que daria o mesmo resultado.

Para testar isso que foi dito basta digitar no console do navegador:

var teste = 3

console.log(teste)

//isso irá retornar 3;

Agora digite:

console.log(!teste)

//irá retornar false;

console.log(!!teste)

//retornará true;

console.log(Boolean(teste))

//retornará true;

console.log((2 == 1))

//é false;

console.log(!(2 == 1))

//é true;

console.log(!!(2 == 1))

//é false;


Veja mais em:
Quais os operadores lógicos em javascript?
O que são tipos primitivos de dados?
O que é operador ternário?
O que são operadores de atribuição?
O que são operadores aritméticos?
O que são operadores bit a bit?
O que são operadores de string?
O que são operadores unário?
O que são operadores relacionais?
O que são operadores lógicos?
O que são operadores de comparação?
O que significa => No JavaScript?
O que significa && no JavaScript?
Quais são os operadores aritméticos em JavaScript?
Qual é o operador lógico unário?
O que é uma Arrow function JavaScript?
O que é =>?
Quando usar try catch JavaScript?
Quais são os operadores relacionais?
O que a função console Log faz em JavaScript?
Como usar o IF em JavaScript?
O que significa o operador em JavaScript?
Para que serve o operador ++?
Quais são os operadores lógicos Portugol?
Quais são os operadores lógicos no Excel?
Como usar Arrow function JavaScript?
Como chamar uma Arrow function JavaScript?
Qual a diferença entre function e Arrow function?
Qual é a finalidade do tratamento de erro de um exemplo em JavaScript?
Como lançar exceção JavaScript?
Para que servem os operadores relacionais?
O que são operadores relacionais em C?
Qual símbolo representa o operador relacional diferente em SQL?
Como ver o console log?
Como usar o console Log JavaScript?
Qual a diferença entre console log e console INFO?
O que é condição em JavaScript?

Quer acompanhar as novidade do site?

Leia mais em: t.wikipedia.org/wiki/JavaScript

O que duas exclamações fazem no JS?

Última atualização: 2023-02-15